package com.cheetah.start.module.system.service;

import com.baomidou.mybatisplus.solon.service.IService;
import com.cheetah.start.common.base.query.PageQuery;
import com.cheetah.start.common.base.result.ResultTable;
import com.cheetah.start.module.system.domain.SysRole;

import java.util.List;

public interface SysRoleService extends IService<SysRole> {


    /**
     * 列表启用
     *
     * @return {@link List}<{@link SysRole}>
     */
    List<SysRole> listEnable();

    /**
     * 获取页面
     *
     * @param pageQuery 页面查询
     * @param role      角色
     * @return {@link ResultTable}
     */
    ResultTable getPage(PageQuery pageQuery, SysRole role);

    /**
     * 超级管理员
     *
     * @param roleId 角色 id
     * @return boolean
     */
    boolean isSuperAdmin(Integer roleId);

    /**
     * 超级管理员不能禁用
     *
     * @param role 角色
     * @return boolean
     */
    boolean isSuperAdminDisable(SysRole role);

    /**
     * 把所有角色检查
     *
     * @param adminId 管理员id
     * @return {@link List}<{@link SysRole}>
     */
    List<SysRole> getAllRoleWithCheck(Integer adminId);
}
